﻿
Public Class KOJared
    Inherits ObjektKO
    Public Sub New(ByVal Spieler As Integer)
        MyBase.New(Spieler, KIGabeEinsatzstellen.RundenAnfang)
        StartwerteLaden()
    End Sub
    Public Sub New(ByVal Spieler As Integer, ByVal Gabefuellstand As Integer, ByVal Gabenart As Gabemodi, ByVal neuSternkosten As Integer)
        MyBase.New(Spieler, Gabefuellstand, Gabenart, neuSternkosten, KIGabeEinsatzstellen.RundenAnfang)
        StartwerteLaden()
    End Sub

    Private Sub StartwerteLaden()
        KOID = "JARED"
        Armee = Armeen.AC.ToString
        Musik = "Jared"
        Bild = GetBildID()
        Select Case DataSettings.CommanderWarsGameModus
            Case CommanderWarsGameModi.AdvanceWars
                Sternkosten = 1000
                Gabekosten = 0
                SpezialgabeKosten = 4
                Gaben = Objektverwalter.GetKO(Bild).KOBeschreibung.Gaben
                Gaben(1) = Gaben(0)
            Case CommanderWarsGameModi.AdvanceWars2
                Sternkosten = 1000
                Gabekosten = 3
                SpezialgabeKosten = 4
                Gaben = Objektverwalter.GetKO(Bild).KOBeschreibung.Gaben
            Case CommanderWarsGameModi.AdvanceWarsDS
                Sternkosten = 1000
                Gabekosten = 3
                SpezialgabeKosten = 4
                Gaben = Objektverwalter.GetKO(Bild).KOBeschreibung.Gaben
            Case CommanderWarsGameModi.AdvanceWarsDC
                Sternkosten = 1000
                Gabekosten = 0
                SpezialgabeKosten = 6
                Gaben = Objektverwalter.GetKO(Bild).KOBeschreibung.Gaben
            Case Else
                Sternkosten = 1000
                Gabekosten = 3
                SpezialgabeKosten = 4
                Gaben = Objektverwalter.GetKO(Bild).KOBeschreibung.Gaben
        End Select
        KORange = 4
        KOname = Objektverwalter.GetKO(Bild).KOBeschreibung.Name

        KOLaden()
    End Sub

    Public Overrides Sub KOLaden()
        NeueBewegungskosten = New Integer() {1, 1, 1, 1}
        BewegungskostenUntergrund = New String() {"RIFF", "WALD", "KAKTEEN", "KIEFERN"}
        If DataSettings.CommanderWarsGameModus = CommanderWarsGameModi.AdvanceWarsDC Then
            'Dafuer sinkt die Feuerkraft aber drastisch
            WetterReichweitenbonus(0) = 0
        End If
    End Sub

    Public Overrides Sub Gabeeinsetzen(Optional ByVal OhneFunktion As Boolean = False)
        If OhneFunktion = False Then
            HoehereBewegungskosten(1)
            BackbufferSpiel.AddAnimation("SCREENFLASH", 0, New Point, True, ObjektSpielfeld.TopLayer)
        End If
        GabeEingesetzt()
    End Sub
    Public Overrides Function GetPowerScript(ByVal Power As Integer) As KOCustom.Power.PowerScript
        Select Case Power
            Case 1
                Dim P As New KOCustom.Power.PowerScript
                P.Effects.Add(New KOCustom.Power.PowerScript.EffectIncreaseMovementCosts(1))
                Return P
            Case 2
                Dim P As New KOCustom.Power.PowerScript
                P.Effects.Add(New KOCustom.Power.PowerScript.EffectDoubleAttack)
                Return P
            Case Else
                Return Nothing
        End Select
    End Function
    Public Overrides Sub SpezialGabeeinsetzen(Optional ByVal OhneFunktion As Boolean = False)
        If DataSettings.CommanderWarsGameModus = CommanderWarsGameModi.AdvanceWars Then
            If OhneFunktion = False Then
                HoehereBewegungskosten(1)
                BackbufferSpiel.AddAnimation("SCREENFLASH", 0, New Point, True, ObjektSpielfeld.TopLayer)
            End If
            GabeEingesetzt()
        Else
            If OhneFunktion = False Then
                Zusatzangriffe()
                BackbufferSpiel.AddAnimation("SCREENFLASH", 0, New Point, True, ObjektSpielfeld.TopLayer)
            End If
            GabeEingesetzt()
        End If
    End Sub

    Public Overrides Sub KOFrame()
        'Wir machen nichts
    End Sub
End Class

Public Class KOBeschreibungJared
    Inherits ObjektKOBeschreibung
    Public Sub New()
        Name = "Jared"
        Fein = "Blaue Bildschirme"
        Nein = "Schwarze Bomben"
        Beschreibung = New String() {"Ein junger Hacker", "der loyal zu Menschen", "ist, aber nicht zu Amber Corona."}
        Stil = New String() {"Seine Truppen koennen", "Waelder und Riffe leichter", "passieren."}
        Gabebeschreibung = New String() {"Gegnerische Bewegungskosten", "werden erhoeht."}
        SpezialgabeBeschreibung = New String() {"Gegnerische Truppen werden mit reduzierter Feuerkraft von Jareds Truppen angegriffen."}
        GabeKosten = 3
        Spezialgabekosten = 4
        Gaben = New String() {"Firewall", "Feuersturm"}
        Synergie = New Decimal() {1, 0.5#, 0.5#, -1, 1}
        KONamen = New String() {"SENSEI", "SASHA", "JAVIER", "VON BOLT", "AMY"}
        Doppelgabenamen = New String() {"Rolling Thunder", "Doppel-Gabe", "Doppel-Gabe", "Doppel-Gabe", "Doppel-Gabe", "Atomreaktor"}
        Gabesaetze = New String() {"Ich mache keine Fehler. Es wird Zeit, dass du das lernst." _
                                  , "Eure Armee ist auf die Gnade meines Keyboards angewiesen." _
                                  , "Ich brenne. ...und eure Ebene brennt ab." _
                                  , "Ps. Etwas Sicherheit. Das dauert 5 Minuten." _
                                  , "Immer wenn du ein Loch schliesst, oeffnest du ein Anderes" _
                                  , "Die Maus ist staerker wie das Schwert."}
        Siegsaetze = New String() {"Ich hoere nie auf und ich verliere nie." _
                                , "Was ist falsch? Spuerst du nicht die Hitze?" _
                                , "Du kannst mich nicht aufhalten. Es ist so einfach."}
        Tauschsaetze = New String() {"Dinge werden jetzt heisser." _
                                    , "Warte einen Moment, das System bootet noch."}
        Doppelgabesaetze = New DoppelGabesatz() {New DoppelGabesatz("JARED", "SENSEI", "Zeit fuer ein Musikstueck.", "Aber bitte was klassisches.") _
                                              , New DoppelGabesatz("JARED", "SENSEI", "Jetzt gibt es ein heisses Stueck.", "Erwarte aber nicht, dass ich dazu tanze.") _
                                              , New DoppelGabesatz("JARED", "AMY", "Meine E-Gitarre rockt.", "Weisst du die Funktioniert, aber nur durch Strom, der...") _
                                              , New DoppelGabesatz("AMY", "JARED", "Ein Atomkraftwerk besteht aus einem Atomreaktor, der...", "Hauptsache der Strom kommt aus der Steckdose und ich kann spielen.")}
        Niederlagesaetze = New String() {"Da habe ich mich vergriffen.", _
                                     "Verflucht! Die Firewall war zu gut."}
    End Sub
End Class
